package structuralModel.facadeModel;

/**
 * 功能描述: 外观模式: 封装了多个类的接口，提供一个简单的接口，让客户可以使用这个接口来访问多个类的接口
 *     电影播放器,外观模式
 * 2024/02/10
 * <p>
 * ZhangYi
 */
public class FacadeModelFilm {
    /***
     * 所有子系统的实例对象,初始化
     */
    // Dvd
    private DvdPlayer dvdPlayer = DvdPlayer.getInstance();
    // 爆米花
    private Popcorn popcorn = Popcorn.getInstance();
    // 屏幕
    private Screen screen = Screen.getInstance();
    // 音响
    private Sound sound = Sound.getInstance();


    /**
     * 功能描述: 打开
     */
    public void open(){
        popcorn.pop();
        screen.turnOn();
        dvdPlayer.playDvd();
        sound.on();
    }


    /**
     * 功能描述: 暂停
     */
    public void pause(){
        dvdPlayer.pauseDvd();
        popcorn.close();

    }

    /**
     * 功能描述: 关闭
     */
    public void close(){
        dvdPlayer.stopDvd();
        sound.off();
        screen.turnOff();
        popcorn.close();
    }
}
